import java.util.Scanner;

class SeqStack {
    private char[] data; // 存储栈元素的数组
    private int top;     // 栈顶指针（初始值为-1表示空栈）

    /**
     * 初始化固定大小的栈（32字节足够存储32位整数的转换结果）
     * @param size 栈的容量（此处固定为32）
     */
    public SeqStack(int size) {
        data = new char[32]; // 创建字符数组存储栈元素
        top = -1;            // 初始化栈顶指针为-1（空栈状态）
    }
    /**
     * 入栈操作
     * @param c 待压入栈的字符
     */
    public void push(char c) {
        data[++top] = c; // 栈顶指针先+1，再将元素存入数组
    }
    /**
     * 出栈操作
     * @return 栈顶元素（出栈后栈顶指针自动-1）
     */
    public char pop() {
        return data[top--]; // 返回栈顶元素后指针减1
    }

    /**
     * 判断栈是否为空
     * @return true表示空栈，false表示非空
     */
    public boolean isEmpty() {
        return top == -1; // 当top=-1时栈为空
    }
}

public class day04 {
    // 预定义的数字-字符映射表（0-9对应原字符，10-15对应A-F）
    private static final String DIGITS = "0123456789ABCDEF";

    /**
     * 主程序入口
     * @param args 命令行参数（未使用）
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建输入扫描器

        // 获取用户输入的十进制数（严格匹配图片中的提示格式）
        System.out.print("请输入一个十进制数字："); // 注意：使用print而非println保持输入在同一行
        int num = scanner.nextInt();                // 读取整数输入

        // 获取目标进制（限制在2-16之间）
        System.out.print("请输入想要转换为几进制的数字：");
        int base = scanner.nextInt();

        // 输入验证（不符合要求的进制直接退出）
        if (base < 2 || base > 16) {
            System.out.println("无效的进制参数"); // 图片中的错误提示没有显示，保留标准处理
            return;
        }

        // 执行转换并输出结果（注意：直接输出结果不换行，匹配图片效果）
        String result = convert(num, base);
        System.out.print(result); // 关键点：与图片中的输出格式完全一致（无前缀/后缀）
    }

    /**
     * 进制转换核心算法
     * @param num  非负的十进制整数
     * @param base 目标进制（2/8/16）
     * @return 转换后的字符串表示
     */
    private static String convert(int num, int base) {
        // 处理特殊情况：输入为0时直接返回"0"
        if (num == 0) return "0";

        SeqStack stack = new SeqStack(32); // 创建容量为32的顺序栈

        // 核心转换逻辑：不断取余数并压栈
        while (num > 0) {
            int rem = num % base;                // 计算余数
            stack.push(DIGITS.charAt(rem));      // 将对应字符压入栈
            num /= base;                         // 更新被除数
        }

        // 构建结果字符串（通过出栈操作反转余数顺序）
        StringBuilder sb = new StringBuilder();
        while (!stack.isEmpty()) {
            sb.append(stack.pop()); // 关键点：出栈顺序即正确顺序
        }
        return sb.toString();
    }
}